#pragma once

#include <boost/bind.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <boost/asio.hpp>

#include "TcpConnection.h"

using boost::asio::ip::tcp;

class TcpServer
{
public:
	TcpServer(void);
	TcpServer(boost::asio::io_service& io_service);
	~TcpServer(void);

private:
	void start_accept();
	void handle_accept(TcpConnection::pointer new_connection,
      const boost::system::error_code& error);

	tcp::acceptor acceptor_;
};

